Web servers are used to respond to user's web page requests. A web server monitors one or more computer network address/port endpoints for web page requests and responds to the web page requests sent to an endpoint by transmitting web pages to the requester. Such web servers may be implemented with a software program running on a general purpose computer. The service capacity of a web server limits the number of web page requests that may be received and responded to.
For web applications that generate a significant amount of requests, web page application providers may use two or more web servers. Each web page request may be directed towards one of the web servers, and that one of the web servers responds to that web page request. In this way the requests are divided among the web servers. The web page requester may or may not have knowledge that there are a plurality of web servers responding to requests for a particular application.
In one web service system, the requester has knowledge that the application is available from more than one web server. The requester selects a web server, and requests a web page from that server. The web server responds to that web page request by providing a web page. This system has the disadvantage of requiring that the requester be aware of the various web servers. It has the additional disadvantage of having the web server selection be out of the control of the web service system.
In another system with multiple web servers, the domain name system (“DNS”) that is in use in the Internet may be used to divide requests among a plurality of web servers. In normal use, a DNS server is used to match a web server name with a network address/port endpoint. A DNS request provides the DNS server with the name of a web server, and the DNS server responds with the network address/port endpoint of that web server. In the web service system that uses a DNS server to distribute requests to multiple web servers, when a web server name is submitted to the DNS server, the DNS server responds with one of the several address/port endpoints associated with the multiple web servers. In this way, DNS requests with the same DNS name may be responded to with different web servers having different network address/port endpoints. In this way, the DNS server can divide the requests among the servers. This has the advantage of not requiring the requester to have knowledge of the web service system architecture. One disadvantage of this system is that the DNS server must do more work than usually required to match names with endpoints, and this extra work may decrease the throughput of the DNS server. Another disadvantage is that the DNS server may not know how many web page requests are associated with a DNS request. Each response of the DNS server may be cached in other DNS servers for some period of time, and so one DNS request response may result in an unpredictably large number of web page requests being directed to the one web server, and that server may become overloaded.